package com.town.garden.entiy.request;

import com.fasterxml.jackson.annotation.JsonAlias;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

/**
 * @Description
 * @E-mail cwm3412638@163.com
 * @Author cwm
 * @Date 2022/5/17
 */
@Data
public class FaceAddInfo {
    /**
     * 64位有符号目标Id，唯一标识,添加目标不需要此字段
     */
    @JsonAlias("Id")
    @JsonProperty("Id")
    private Long id;
    /**
     * 所属的目标组，修改目标信息时，该字段无效
     */
    @JsonAlias("GrpId")
    @JsonProperty("GrpId")
    private Integer grpId;
    /**
     * 性别：0-未知，1-男， 2-女，（3-表示所有，查询时）
     */
    @JsonAlias("Sex")
    @JsonProperty("Sex")
    private Integer sex;
    /**
     * 年龄
     */
    @JsonAlias("Age")
    @JsonProperty("Age")
    private Integer age;
    /**
     * 该目标信息的修改次数，只读
     */
    @JsonAlias("ModifyCnt")
    @JsonProperty("ModifyCnt")
    private Integer modifyCnt;
    /**
     * 添加时必须给定，为数据库目标主图片, 使用base64加密过的数据
     * 注意 base64图片不能带前缀 data:image/jpg;base64,
     * 格式：jpg、png、bmp，建议使用jpg格式；
     * 图片宽高：最大1200x1200，最小80x80，建议大小为150x200，如果图片超过了该建议值，请尽量先等比缩放到该尺寸以内后再使用相关的API，
     * 因为过大尺寸的图只会加大设备的负载，并不会提升目标识别的效果；
     * 图片大小：500KB以内，建议不超过50KB，在图片质量可接受的前提下，该大小越小越好，
     * 一般150x200尺寸的jpg证件照大概为7KB，当图片大小超过建议值时请尽量等比缩放到150x200以内的尺寸，
     * 并按80%的质量编码成jpg格式的图片数据，然后再使用相关的API，因为过大的图片只会加大网络传输的压力，增加设备内存消耗，
     * 并不会提升目标识别的效果。同时图片需要转为base64数据。
     */
    @JsonAlias("Image")
    @JsonProperty("Image")
    private String image;
    /**
     * 目标图片对应的特征值, 使用base64加密过的数据
     */
    @JsonAlias("Feature")
    @JsonProperty("Feature")
    private String feature;
    /**
     * 特征值版本，只有版本相同的特征值进行比对时才有意义，如果回传特征值请将该字段也回传
     */
    @JsonAlias("FtVersion")
    @JsonProperty("FtVersion")
    private Integer ftVersion;
    /**
     * 姓名（添加目标时，名字必填，添加比对目标的API中该字段可以不填，因为该名称对比对目标来说没有实际意义）
     * Max length: 384byte
     */
    @JsonAlias("Name")
    @JsonProperty("Name")
    private String name;
    /**
     * 国籍 Max length: 384byte
     */
    @JsonAlias("Country")
    @JsonProperty("Country")
    private String country;
    /**
     * 籍贯 Max length: 384byte
     */
    @JsonAlias("NativePlace")
    @JsonProperty("NativePlace")
    private String nativePlace;
    /**
     * 身份证或工号,不允许输入中文字符
     * Max length: 64byte
     */
    @JsonAlias("IdCode")
    @JsonProperty("IdCode")
    private String idCode;
    /**
     * 职业
     * Max length: 384byte
     */
    @JsonAlias("Job")
    @JsonProperty("Job")
    private String job;
    /**
     * 电话,不允许输入中文字符
     * Max length: 64byte
     */
    @JsonAlias("Phone")
    @JsonProperty("Phone")
    private String phone;
    /**
     * 邮箱,不允许输入中文字符
     * Max length: 64byte
     */
    @JsonAlias("Email")
    @JsonProperty("Email")
    private String email;
    /**
     * 居住地
     * Max length: 960byte
     */
    @JsonAlias("Domicile")
    @JsonProperty("Domicile")
    private String domicile;
    /**
     * 备注
     * Max length: 960byte
     */
    @JsonAlias("Remark")
    @JsonProperty("Remark")
    private String remark;
    /**
     * 图片MD5值，添加目标不需要传此字段
     */
    @JsonAlias("MD5")
    @JsonProperty("MD5")
    private String md5;
    /**
     * JSON array
     * 特殊权限控制，控制该目标允许在哪些通道进行报警，每个元素类型为uint8_t，按bit位使用，
     * bit位置位表示对应的通道允许报警，该字段不存在或者为空表示不使用特殊权限控制，
     * 报警处理逻辑和以前一致。
     */
    //EnableChnAlarm
}
